本文是学习GB-T 32846-2016 科技平台 元数据汇交报文格式的设计规则. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
本标准规定了科技平台建设中元数据汇交过程中基于XML
的报文格式的设计规则,包括报文结
构、元数据映射为 XML Schema 的规则以及 XML Schema
的设计规则,并给出了资源核心元数据的汇
交报文格式。
本标准适用于科技平台间元数据汇交的XML 报文格式设计。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 24639—2009 元数据的XML Schema置标规则
GB/T 30523—2014 科技平台 资源核心元数据
下列术语和定义适用于本文件。
3.1
科技平台 general science and technology
infrastructure
运用现代信息技术等手段,有效整合科技资源,为科技创新和经济社会发展提供共享服务的网络
化、社会化的组织体系。
[GB/T 31075—2014,定义2.1.1]
3.2
元数据 metadata
定义和描述其他数据的数据。
[GB/T 18391.1—2009,定义3.2.16]
3.3
元数据元素 metadata element
元数据的基本单元。
注1:与UML 术语中的属性同义。
注2:元数据元素在元数据实体中是唯一的。
[GB/T 19710—2005,定义4.6]
3.4
元数据实体 metadata entity
一组说明数据相同特性的元数据元素。
注 1 : 与 UML 术语中的类同义。
注 2 : 可以包括一个或一个以上的元数据实体。
GB/T 32846—2016
[GB/T 19710—2005,定义4.7]
3.5
元数据类型实体 metadata type entity
一种可作为自定义的数据类型被重复引用的元数据实体。
[GB/T 24639—2009,定义2.4]
3.6
元数据子集 metadata section
元数据的子集合,由相关的元数据实体和元素组成。
注:与UML 术语中的包同义。
[GB/T 19710—2005,定义4.8]
3.7
报文 message
一个已标识、命名和结构化的在功能上相互关联的段的集合,它涵盖某一特定交易类型的需求,并
在报文规范中说明。 一个报文用报文头开始,用报文尾结束。
[GB/T 14805.1—2007,定义4.66]
3.8
报文头 message header
开始并唯一标识报文的服务段。
[GB/T 14805.1—2007,定义4.69]
3.9
报文体 message body
一个已标识、命名和结构化的、在功能上与段相关联的集合,它涵盖某一特定交易类型的需求,不包
括报文头和报文尾,并在报文规范中说明。
[GB/T 14805.1—2007,定义4.67]
3.10
报文尾 message trailer
结束报文的服务段。
[GB/T 14805.1—2007,定义4.71]
基于XML 的报文格式遵循 GB/T 24639—2009
的规定。报文格式的功能结构与国内外惯用的报
文格式的功能结构相同,由报文头、报文体和报文尾组成,见图1。其中:
——报文头:包括报文标识、报文功能、发送方标识、接收方标识以及报文生成日期/时间的信息等。
——报文体:报文的主体信息,由元数据实体、元数据类型实体和元数据元素构成,如科技平台资源
核心元数据汇交报文的报文体包括 GB/T 30523—2014
所规定的9条核心元数据,分别是标
识符、名称、最近提交日期、描述、提交机构、关键词、访问限制、资源类别和资源信息链接地址,
其中提交机构和资源类别属于元数据实体,其他为元数据元素。
——报文尾:关于报文结束的一些说明信息,如签名信息。
附录 A 给出了科技平台资源核心元数据的报文格式应用实例。
style="width:5.69342in;height:4.82658in" />
图 1 报文功能结构
GB/T 32846—2016
4.2 基于XML 的报文格式的逻辑结构
元数据子集、元数据实体、元数据类型实体和元数据元素间的关系如图2所示,其中:
——元数据子集由相关的元数据实体和元数据元素组成。
——元数据实体由其他元数据实体和元数据元素组成。元数据实体可以与元数据类型实体相关
联,也可以与其他元数据实体相关联。
——元数据实体和元数据元素可以用数据字典的方式描述,并通过以下属性定义元数据实体和元
数据元素,即:中文名称、英文名称、短名、定义、注解、数据类型、值域、子元素,其中注解包括约
束条件和最大出现次数。
style="width:9.49375in;height:6.35347in" />
style="width:0.13987in;height:0.28006in" />
图 2 基于 XML 的元数据汇交报文格式的逻辑结构
报文结构及其标记说明见表1。表头按下列定义:
GB/T 32846—2016
— — 报文层(Level): 标识元数据在报文结构中的位置,用0、1、2表示。
——XML 标记名(XML Tag Name):XML 的元素名称。
— — 说明(Description):对标记名的简要解释和应用说明。
— —
约束(Constraints):对元数据在报文中的制约,该元数据在报文中的状态:M(Mondatory)
是 必备型;O(Optional) 是可选型;C(Conditional)
是条件型,对于代码与名称/描述的数据元,两
者至少选择其中之一。
— — 出现次数(Repeats):
指该元数据在报文中重复出现的次数:0..1可选且出现一次;0..n 可选且
可出现多次;1.1必选且出现一次;1..n 必选且可出现多次。
— 类 型 和 长 度(Type/Length): 指元数据的数据取值类型和最大字节数。 a
表示字符型,n 表 示 数字型,an 表示数字字符型,n8
表示固定的8位数字长度,an..70 表示70个数字字符的不定
长度。
表 1 报文功能结构及其标记说明
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
5 元数据映射为 XML Schema 的规则
规则1 :应详细说明 XML Schema 的前导说明(prolog) 部分。
规则2: 应将元数据根实体定义为一个根元素(root element)。
规则3: 应将元数据实体定义为 XML Schema 的元素(element)。
GB/T 32846—2016
规则4: 应将元数据类型实体定义为 XML Schema
的复杂类型(complexType)。
规则5: 应将元数据元素定义为 XML Schema 的元素(element)。
规则6: 应将元数据标准中的代码表定义为 XML Schema
的简单类型(simpleType)。
规则7: 不应将元数据子集转换为 XML Schema。
规则8: 元数据实体、元数据类型实体、元数据元素的中文名称、英文名称以及定义注解用
XML
Schema 的注释说明,具体规则如下:
——元数据实体、元数据类型实体、元数据元素的中文名称用注释说明,即:
\<xs:documentation)元数据类型实体中文名称\</xs:documentation〉
—元数据实体、元数据类型实体、元数据元素的英文名称用注释说明,即:
\<xs:documentation〉 元数据类型实体英文名称\</xs:documentation)
——元数据实体、元数据类型实体、元数据元素的定义、注解用注释说明,即:
\<xs:documentation)元数据类型实体的定义、注解等\</xs:documentation〉
5.2 元数据实体映射为 XML Schema 的规则
规则9 :元数据实体名称定义为 XML Schema 中的元素(element), 其 name
属性的值应为元数据
实体的短名。
规则 10:元数据实体的类型定义为 element name 所包含的 complexType。
规则11:元数据实体的出现次数用 maxOccurs 和 minOccurs 表达。
其中 maxOccurs 表示该元数据实体可以出现的最大实例数目。
当元数据实体是可选或条件必选时,用 minOccurs
表示该元数据实体的可选属性,且 minOccurs
=0。
当元数据实体是必选时,minOccurs=1。
规则12: 如果组成元数据实体的元数据元素之间、元数据实体之间、元数据元素和元数据实体之间
有条件必选关系,使用“xs:choice”表示,如果没有条件必选关系,只是序列关系,则用
sequence 表示。
示例 :元数据实体"负责方单位信息"包含的3个子元素"负责人姓名、负责人单位名称和负责人职务"之间是条件必
选关系,使用"xs:choice"表示为:
(xs:complexType〉
(xs:choice)
(xs:element (xs:element
\<xs:element
\</xs:choice>
(/xs:complexType)
name="rpIndName" name="rpOrgName"
name="rpPosName"
type="xs:string"/>
type="xs:string"/>
type="xs:string"/>
5.3 元数据类型实体映射为 XML Schema 的规则
规则 13:元数据类型实体定义为复杂类型(complexType), 其 name
的值应用元数据类型实体的
"短名+Type"。
示例: “引用和负责单位信息”是元数据类型实体,按照本规则,相应的 XML
Schema 代码为:
(xs:complexType name="CitationType")
(xs:sequence)
(xs:element name="resTitle">
〈xs:element name="resRefDate">
······
\</xs:sequence)
GB/T 32846—2016
〈/xs:complexType)
规则1 4:组成元数据类型实体的元数据元素之间、元数据实体之间、元数据元素和元数据实体之间
是序列关系,用 sequence 表示。
5.4 元数据元素映射为 XML Schema 的规则
规则15: 元数据元素名称定义为元素(element), 其 name
的值应用元数据元素的缩写名。
规则16: 元数据元素的类型用type 属性说明,type
属性的值可以是元数据类型实体名称、元数据
代码表名称或系统默认的数据类型名称。
规则17:元数据元素的出现次数用 maxOccurs 和 minOccurs 表达。
其中 maxOccurs 表示该元数据元素可以具有的最大实例数目。
当元数据元素是可选项或条件必选项时,用 minOccurs
表示该元数据元素的可选属性,且 minOc-
curs=0。
当元数据元素是必选项时,minOccurs=1。
规则18: 元数据元素的值域,没有特定约束无需说明。
如需说明,则:
——对数值型类型的元数据元素,用"minInclusive value"和"maxInclusive
value"说明其最大最小
范围;
示例:
(restriction base="Integer"〉
(minInclusive value="0"/>
(maxInclusive value="4095"/>
(/restriction)
——对文本型类型的元数据元素,用"xs:length"说明其字符串长度。
5.5 代码表映射为 XML Schema 的规则
规则19: 元数据标准中的代码表定义为 simpleType, 其 name
属性为代码表的英文缩写名。
规则20: 如果存在元数据代码表的定义或说明则用注释表示,如果不存在则不用说明。
规则21: 元数据代码表的代码值定义为 simpleType 的枚举值。
规则22: 元数据代码表的代码值的定义用注释(annotation) 说明。
6 XML Schema 的设计规则
6.1 XML Schema 的语法规则
元数据的 XML Schema 应符合 W3C XML Schema 的要求,包括:
——W3C XML Schema PartO:Primer;
W3C XML, Schema Partl;Structures;
W3C XML Schema Part2:Datatypes。
6.2 XML Schema 的结构设计规则
规则23:XML Schema
整体结构应包括前导说明部分(prolog)、元素定义部分以及开始标记和结束
标记。
规则24: 前导说明部分:需要声明报文的版本、字符集、命名空间以及一些注释信息。
规则25: 元素定义部分:是 XML Schema
的主体部分,科技平台元数据报文的 XML Schema 的 主
GB/T 32846—2016
体部分主要是元数据实体、元数据元素、数据类型、代码等分别定义为 XML
Schema 的元素、类型和属
性后形成的部分。
规则26: 开始标记和结束标记:"Schema" 元素是 XML Schema
中的第一个出现的元素。
〈xs:schema xmlns:xs="命名空间">是 XML
模式的开始标记,表明该文档是一个 XML 模式文
档,同时定义了命名空间,相应地,"\</xs:schema>"
是结束标记放在文档的末尾。因此, 一个完整的
XML 模式的结构如下:
(xs:schema xmlns:xs"命名空间"〉
····
\</xs:schema〉
6.3 XML Schema 的前导说明部分设计规则
规则27:XML Schema 的字符集
——如果 XML
Schema中元素、属性、数据类型等内容都用英文表达,则encoding属性值为“UTF-8”;
——如果 XML Schema 中元素、属性、数据类型等内容中包含中文,则 encoding
属性值为
"GB 2312"。
规则28:命名空间(namespace) 的说明
XML Schema 的前导说明部分应包含命名空间的定义:
科技平台资源核心元数据内容的命名空间的值为
http://www.escience.gov.cn/。
\<? xml version="1.0"encoding="GB 2312"?>
(xs:schema targetNamespace="http://www.escience.gov.cn/"
xmlns="http://www.escience.gov.cn/">
规则29:应在前导说明部分以注释的形式说明以下内容:
——元数据标准名称;
——元数据标准版本;
——XML Schema 编写单位或编写人;
——XML Schema 完成时间。
6.4 XML Schema 的根元素设计规则
规则3 0:元数据的根实体定义为 XML Schema
的根元素,根元素的名称是"metadata", 根元素的类
型定义为"xs:complexType"。
示例:声明"科技平台资源核心元数据"作为XML Schema的根元素为:
(xs:element name ="metadata">
〈xs:annotation)
\<documentation)元数据\</documentation)
(documentation)Metadata\</documentation)
\<documentation)定义科技平台资源内容描述元数据的根实体(/documentation〉
\</xs:annotation)
(xs:complexType">
〈xs:sequence)
······
\</xs:sequence)
\</xs:complexType〉
(/xs:element)
GB/T 32846—2016
(资料性附录)
科技平台资源核心元数据汇交报文格式
A.1 报 文 结 构
报 文 结 构 见 图 A.1。
style="width:11.06667in;height:12.8733in" />元数据汇交报文
1..1
报文头
1..1
报文标识
1..1
报文体
1..
数字签名
0..1
报文功能
1..1
发送方标识
1..1
接收方标识
1..n
报文生成日期/时间
1..n
标识符
1..1
名称
1..1
最近提交日期
1..1
描述
1..1
提交机构
1..1
关键词
1..1
访问限制
1..1
资源类别
1..p
资源信息链接地址
1..n
提交机构名称
1..1
提交机构通信地址 1..1
提交机构邮政编码 1..1
提交机构联系电话 1..n
提交机构电子信箱 1..n
类日名称
1..n
类月代码
1..n
分类标准名称
1..1
分类标准版本号
0..1
图 A.1 报文结构简图
GB/T 32846—2016
A.2 报文结构标记说明
报文结构标记说明见表 A.1。
表 A.1 报文结构及标记说明
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GB/T 32846—2016
表 A.1 (续)
|
|
|
|
|
|
---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A.3 报 文 XML Schema
按照映射规则,科技平台资源核心元数据汇交报文 XML Schema为:
\<? xml version="1.0" encoding="UTF-8"?>
〈xs:schema xmlns:xs ="http://www.w3.org/2001/XMLSchema"
elementFormDefault ="qualified"
attributeFormDefault ="unqualified">
\<xs:element name ="metadata">
\<xs:annotation)
\<xs:documentation)科技平台资源核心元数据\</xs:documentation〉
く/xs:annotation〉
\<xs:complexType〉
\<xs:sequence)
\<xs:element name ="MessageHead">
(xs:complexType)
〈xs:sequence)
(xs:element name ="messID" type="xs:string">
\<xs:annotation)
\<xs:documentation〉报文标识\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="messFun" type="xs:string">
\<xs:annotation〉
\<xs:documentation)报文功能\</xs:documentation>
\</xs:annotation)
\</xs:element>
(xs:element name ="messRefNo">
\<xs:annotation〉
\<xs:documentation)报文参考号\</xs:documentation〉
\</xs:annotation〉
GB/T 32846—2016
\</xs:element>
〈xs:element name="messSentID"〉
\<xs:annotation)
\<xs:documentation>报文发送方标识\</xs:documentation〉
\</xs:annotation)
\</xs:element〉
(xs:element name ="messReceiveID">
\<xs:annotation〉
\<xs:documentation>报文接收方标识\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="messDatetime" type="xs:dateTime"〉
\<xs:annotation〉
〈xs:documentation)报文发送时间\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
〈/xs:sequence>
\</xs:complexType)
\</xs:element〉
\<xs:element name ="MessageBody"〉
〈xs:complexType〉
(xs:sequence)
(xs:element name="resId" type="xs:string"〉
\<xs:annotation〉
\<xs:documentation〉标识符\</xs:documentation〉
\<xs:documentation 〉ResourceIdentifier\</xs:documentation〉
\<xs:documentation)科技资源的唯一标识编码\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="resTitle" type="xs:string">
\<xs:annotation〉
\<xs:documentation〉名称\</xs:documentation〉
\<xs:documentation 〉ResourceTitle\</xs:documentation〉
\<xs:documentation)科技资源的名称\</xs:documentation〉
\</xs:annotation)
\</xs:element>
(xs:element name ="upDate" type="xs:date"〉
\<xs:annotation〉
\<xs:documentation>最近提交日期\</xs:documentation〉
\<xs:documentation>DateOfUpdate\</xs:documentation〉
\<xs:documentation)最近一次提交核心元数据的日期\</xs:documentation)
\</xs:annotation)
\</xs:element>
GB/T 32846—2016
(xs:element name="descrp" type="xs:string">
\<xs:annotation〉
\<xs:documentation)描述\</xs:documentation〉
(xs:documentation)Description\</xs:documentation)
\<xs:documentation〉科技资源内容的综述性介绍。包括科技资源的来源、特征、指标、用途
等。\</xs:documentation)
\</xs:annotation〉
\</xs:element〉
〈xs:element name="idPoC">
\<xs:annotation〉
\<xs:documentation〉提交机构\</xs:documentation〉
\<xs:documentation>PointOfContact\</xs:documentation〉
\<xs:documentation>提交资源核心元数据的单位或机构\</xs:documentation)
\</xs:annotation〉
\<xs:complexType〉
\<xs:sequence)
(xs:element name="orgName" type="xs:string">
\<xs:annotation)
\<xs:documentation)提交机构名称\</xs:documentation〉
\<xs:documentation)OrganizationName\</xs:documentation〉
\<xs:documentation)提交机构的组织机构名称\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
\<xs:element name="cntAdd" type="xs:string">
\<xs:annotation)
\<xs:documentation)提交机构通信地址\</xs:documentation〉
\<xs:documentation 〉Address\</xs:documentation〉
\<xs:documentation〉与提交机构联系的通信地址\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="postCode" type="xs:string">
\<xs:annotation〉
\<xs:documentation〉提交机构邮政编码\</xs:documentation〉
\<xs:documentation 〉PostalCode\</xs:documentation〉
\<xs:documentation)与提交机构通信地址相对应的邮政编码\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
\<xs:element name="cntPhone" type="xs:string">
\<xs:annotation〉
\<xs:documentation>提交机构联系电话\</xs:documentation〉
\<xs:documentation 〉Phone\</xs:documentation〉
\<xs:documentation〉提交机构联系人的联系电话\</xs:documentation)
\</xs:annotation〉
GB/T 32846—2016
\</xs:element〉
〈xs:element name="cntEmail" type="xs:string"〉
\<xs:annotation〉
\<xs:documentation〉提交机构电子信箱\</xs:documentation〉
\<xs:documentation 〉ElectronicMailAddress\</xs:documentation〉
\<xs:documentation)提交机构联系人的电子邮件地址\</xs:documentation〉
\</xs:annotation〉
\</xs:element>
\</xs:sequence〉
\</xs:complexType)
\</xs:element〉
\<xs:element name ="keyword" type="xs:string" maxOccurs ="unbounded">
\<xs:annotation〉
〈xs:documentation)关键词\</xs:documentation〉
〈xs:documentation>Keyword\</xs:documentation〉
\<xs:documentation>用于描述资源信息主题的通用词、形式化词或短语。\</xs:documenta-
tion>
\</xs:annotation)
\</xs:element>
(xs:element name ="accConsts" type="xs:string"〉
\<xs:annotation〉
\<xs:documentation>访问限制\</xs:documentation〉
\<xs:documentation>AccessConstraints\</xs:documentation〉
\<xs:documentation〉为保护隐私权或知识产权,对访问资源信息施加的限制或约束\</xs:doc-
umentation>
\</xs:annotation〉
\</xs:element〉
(xs:element name="resCat">
\<xs:annotation〉
\<xs:documentation〉资源类别\</xs:documentation〉
〈xs:documentation 〉ResourceCategory\</xs:documentation)
\<xs:documentation)资源的分类信息\</xs:documentation〉
\</xs:annotation)
\<xs:complexType)
\<xs:sequence)
(xs:element name="cateName" type="xs:string" maxOccurs ="unbounded">
\<xs:annotation〉
\<xs:documentation)类目名称\</xs:documentation〉
\<xs:documentation>CategoryName\</xs:documentation)
\<xs:documentation>用于描述资源主题的通用词、形式化词或短语\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="cateCode" type="xs:string" maxOccurs ="unbounded">
GB/T 32846—2016
\<xs:annotation)
\<xs:documentation〉类目代码\</xs:documentation>
\<xs:documentation>CategoryCode\</xs:documentation)
\<xs:documentation〉分类标准中类目名称对应的代码\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="cateStdN" type="xs:string"〉
\<xs:annotation〉
\<xs:documentation>分类标准名称\</xs:documentation〉
\<xs:documentation>CategoryStandardName\</xs:documentation〉
\<xs:documentation>分类标准的名称\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
(xs:element name="cateStdR" type="xs:string">
\<xs:annotation)
\<xs:documentation>分类标准的版本号\</xs:documentation〉
〈xs:documentation 〉CategoryStandardRevision\</xs:documentation〉
\<xs:documentation)分类标准的版本号\</xs:documentation〉
\</xs:annotation〉
\</xs:element〉
\</xs:sequence)
\</xs:complexType〉
〈/xs:element>
〈xs:element name="onlAdr" type="xs:string" maxOccurs ="unbounded">
\<xs:annotation〉
\<xs:documentation〉资源信息链接地址\</xs:documentation〉
\<xs:documentation 〉OnlineAddress\</xs:documentation〉
\<xs:documentation)资源详细信息的有效绝对网络地址\</xs:documentation)
\</xs:annotation〉
\</xs:element〉
\</xs:sequence>
\</xs:complexType〉
\</xs:element〉
\</xs:sequence>
\</xs:complexType)
\</xs:element〉
〈/xs:schema〉
GB/T 32846—2016
更多内容 可以 GB-T 32846-2016 科技平台 元数据汇交报文格式的设计规则. 进一步学习